/**
 *  改打包配置文件用来将公共库抽离打包成单独文件。
 * 
 *  目的： 避免每次构建重复打包常用无变化文件，提升构建速度，减少打包体积。同时该文件打包出来的公共三方库可直接页面中引用或CDN上。
 * 
 */

const webpack = require('webpack');
const path = require('path');

module.exports = {
  entry: {
    react: ['react', 'react-dom']
  },
  mode: 'production',
  output: {
    filename: '[name].dll.js', //'[name].dll.[hash:6].js'
    path: path.resolve(__dirname, 'dist', 'dll'),
    library: '[name]_dll',
    // libraryTarget // 指定如何暴露内容， 缺省时就是 var
  },
  plugins: [
    new webpack.DllPlugin({
      // name 和 library 一致
      name: '[name]_dll',
      path: path.resolve(__dirname, 'dist', 'dll', 'manifest.json')  // manifest.json 的生成路径 ； manifest.json 用于让 DLLReferencePlugin 映射到相关依赖上
    })

  ]
}